function format(template, data, prefix) {
    if (!template) {
        return '';
    }

    if (data == null) {
        return template;
    }

    if (prefix === undefined) {
        prefix = '\\$';
    }

    return template.replace(
        new RegExp(prefix + '\\{(.+?)\\}', 'g'),
        function (match, key) {
            var replacer = data[key];
            if (typeof replacer === 'function') {
                replacer = replacer(key);
            }

            return replacer == null ? '' : replacer;
        }
    );
}

/**
 * 获取URL中指定参数的数值
 *
 * @param {string} url 指定的URL
 * @param {string} param 参数名
 * @param {boolean=} decode 可选是否返回解码后的参数值，默认不解码
 * @return {string} 指定的参数值，未匹配到则返回空字符串
 */
function getQueryValue(url, param, decode) {
    // 匹配完整的URL，不可以匹配片段
    // 以 ?/&/# 起始，以 &/# 结束的任意字符串
    var reg = new RegExp(
        '(\\?|&|#)'
        + param
        + '=([^&#]*)(&|#)?'
    );
    var match = url.match(reg);

    var value = '';
    if (match) {
        value = match[2];
    }

    // 判断是否解码输出
    if (decode) {
        value = decodeURIComponent(value);
    }

    return value;
}

Zepto(
    function ($) {

        var type = getQueryValue(location.href, 'type');
        var id = getQueryValue(location.href, 'id');

        if (!type || !id) {
            $('body').html('参数错误');
            return;
        }

        $.ajax(
            {
                type: 'GET',
                url: '/api/surprise',
                dataType: 'json',
                data: {
                    id: id,
                    from: 'wechat'
                },
                success: function (data) {
                    data = data.data;
                    //data.startTime = formatTime(data.startTime);
                    //data.endTime = formatTime(data.endTime);

                    var template = $('#shopInfo').attr('content');
                    var tpl = $('<div></div>').append(template).html();
                    $('body').html(
                        format(tpl, data)
                    );
                }
            }
        );
    }
);

function formatTime(timeString) {
    if (timeString) {
        return timeString.replace(/-/g, '.');
    }
    return '';
}
